import 'dart:io';

void main(List<String> args) {
  print('开始运行');
  //回调地狱 垃圾代码
  // getFirst().then((value1) {
  //   print('第一个项目结果$value1');
  //   getSecond().then((value2) {
  //     print('第二个项目结果$value2');
  //     getThred().then((value3) {
  //       print('第三个项目结果$value3');
  //     });
  //   });
  // });

  //真正的链式调用
  getFirst().then((value) {
    print(value);
    return getSecond();
  }).then((value) {
    print(value);
    return getThred();
  }).then((value) {
    print(value);
  });
}

Future getFirst() {
  return Future(() {
    sleep(new Duration(seconds: 2));
    print('第一个项目运行成功');
    return 1;
  });
}

Future getSecond() {
  return Future(() {
    sleep(new Duration(seconds: 2));
    print('第二个项目运行成功');
    return 2;
  });
}

Future getThred() {
  return Future(() {
    sleep(new Duration(seconds: 2));
    print('第三个项目运行成功');
    return 3;
  });
}
